<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/complexobject.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/complexobject.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/* Complex number structure */</span>
<a name="2" /><span class="True">       2:</span> 
<a name="3" /><span class="True">       3:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfQ09NUExFWE9CSkVDVF9IXzA_"><span class="b">Py_COMPLEXOBJECT_H</span></a>
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQ09NUExFWE9CSkVDVF9IXzA_"><span class="b">Py_COMPLEXOBJECT_H</span></a>
<a name="5" /><span class="False">       5:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="6" /><span class="False">       6:</span> <span class="m">extern</span> <span class="e">&quot;C&quot;</span> <span class="f">{</span>
<a name="7" /><span class="True">       7:</span> <span class="f">#</span><span class="n">endif</span>
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="10" /><span class="True">      10:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="11" /><span class="True">      11:</span>     <span class="m">double</span> <span class="b">real</span><span class="f">;</span>
<a name="12" /><span class="True">      12:</span>     <span class="m">double</span> <span class="b">imag</span><span class="f">;</span>
<a name="13" /><span class="True">      13:</span> <span class="f">}</span> <span class="b">Py_complex</span><span class="f">;</span>
<a name="14" /><span class="True">      14:</span> 
<a name="15" /><span class="True">      15:</span> <span class="k">/* Operations on complex numbers from complexmodule.c */</span>
<a name="16" /><span class="True">      16:</span> 
<a name="17" /><span class="True">      17:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_sum</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">,</span> <span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="18" /><span class="True">      18:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_diff</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">,</span> <span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_neg</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="20" /><span class="True">      20:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_prod</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">,</span> <span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="21" /><span class="True">      21:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_quot</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">,</span> <span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="22" /><span class="True">      22:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">_Py_c_pow</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">,</span> <span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="23" /><span class="True">      23:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">double</span><span class="f">)</span> <span class="b">_Py_c_abs</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">endif</span>
<a name="25" /><span class="True">      25:</span> 
<a name="26" /><span class="True">      26:</span> <span class="k">/* Complex object interface */</span>
<a name="27" /><span class="True">      27:</span> 
<a name="28" /><span class="True">      28:</span> <span class="k">/*</span>
<a name="29" /><span class="True">      29:</span> <span class="k">PyComplexObject represents a complex number with double-precision</span>
<a name="30" /><span class="True">      30:</span> <span class="k">real and imaginary parts.</span>
<a name="31" /><span class="True">      31:</span> <span class="k">*/</span>
<a name="32" /><span class="True">      32:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="33" /><span class="True">      33:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="f">{</span>
<a name="34" /><span class="True">      34:</span>     <a href="macros_ref.html#_UHlPYmplY3RfSEVBRF8w"><span class="b">PyObject_HEAD</span></a>
<a name="35" /><span class="True">      35:</span>     <span class="b">Py_complex</span> <span class="b">cval</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> <span class="f">}</span> <span class="b">PyComplexObject</span><span class="f">;</span>
<a name="37" /><span class="True">      37:</span> <span class="f">#</span><span class="n">endif</span>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyTypeObject</span><span class="f">)</span> <span class="b">PyComplex_Type</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span> 
<a name="41" /><span class="True">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlDb21wbGV4X0NoZWNrXzA_"><span class="b">PyComplex_Check</span></a><span class="f">(</span><span class="b">op</span><span class="f">)</span> <a href="macros_ref.html#_UHlPYmplY3RfVHlwZUNoZWNrXzA_"><span class="b">PyObject_TypeCheck</span></a><span class="f">(</span><span class="b">op</span><span class="f">,</span> <span class="f">&amp;</span><span class="b">PyComplex_Type</span><span class="f">)</span>
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlDb21wbGV4X0NoZWNrRXhhY3RfMA__"><span class="b">PyComplex_CheckExact</span></a><span class="f">(</span><span class="b">op</span><span class="f">)</span> <span class="f">(</span><a href="macros_ref.html#_UHlfVFlQRV8w"><span class="b">Py_TYPE</span></a><span class="f">(</span><span class="b">op</span><span class="f">)</span> <span class="f">==</span> <span class="f">&amp;</span><span class="b">PyComplex_Type</span><span class="f">)</span>
<a name="43" /><span class="True">      43:</span> 
<a name="44" /><span class="True">      44:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="45" /><span class="True">      45:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyComplex_FromCComplex</span><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> <span class="f">#</span><span class="n">endif</span>
<a name="47" /><span class="True">      47:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyComplex_FromDoubles</span><span class="f">(</span><span class="m">double</span> <span class="b">real</span><span class="f">,</span> <span class="m">double</span> <span class="b">imag</span><span class="f">)</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span> 
<a name="49" /><span class="True">      49:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">double</span><span class="f">)</span> <span class="b">PyComplex_RealAsDouble</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">op</span><span class="f">)</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">double</span><span class="f">)</span> <span class="b">PyComplex_ImagAsDouble</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">op</span><span class="f">)</span><span class="f">;</span>
<a name="51" /><span class="True">      51:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="52" /><span class="True">      52:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">Py_complex</span><span class="f">)</span> <span class="b">PyComplex_AsCComplex</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="b">op</span><span class="f">)</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">endif</span>
<a name="54" /><span class="True">      54:</span> 
<a name="55" /><span class="True">      55:</span> <span class="k">/* Format the object based on the format_spec, as defined in PEP 3101</span>
<a name="56" /><span class="True">      56:</span> <span class="k">   (Advanced String Formatting). */</span>
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">Py_LIMITED_API</span>
<a name="58" /><span class="True">      58:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="m">int</span><span class="f">)</span> <span class="b">_PyComplex_FormatAdvancedWriter</span><span class="f">(</span>
<a name="59" /><span class="True">      59:</span>     <span class="b">_PyUnicodeWriter</span> <span class="f">*</span><span class="b">writer</span><span class="f">,</span>
<a name="60" /><span class="True">      60:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">obj</span><span class="f">,</span>
<a name="61" /><span class="True">      61:</span>     <span class="b">PyObject</span> <span class="f">*</span><span class="b">format_spec</span><span class="f">,</span>
<a name="62" /><span class="True">      62:</span>     <span class="b">Py_ssize_t</span> <span class="b">start</span><span class="f">,</span>
<a name="63" /><span class="True">      63:</span>     <span class="b">Py_ssize_t</span> <span class="b">end</span><span class="f">)</span><span class="f">;</span>
<a name="64" /><span class="True">      64:</span> <span class="f">#</span><span class="n">endif</span>
<a name="65" /><span class="True">      65:</span> 
<a name="66" /><span class="False">      66:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="67" /><span class="False">      67:</span> <span class="f">}</span>
<a name="68" /><span class="True">      68:</span> <span class="f">#</span><span class="n">endif</span>
<a name="69" /><span class="True">      69:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_COMPLEXOBJECT_H */</span>
<a name="70" /><span class="True">      70:</span> </pre>
  </body>
</html>
